In telecommunications signaling networks, signaling message routing nodes often include distributed processing architectures. For example, signaling system 7 (SS7) signal transfer points (STPs) and SS7-over-Internet protocol (IP) gateways often include distributed processing architectures. Such architectures may include groups of circuit boards, each having one or more microprocessors, that perform stateless message processing functions, such as message routing. Dividing the processing to perform signaling message routing among multiple processors increases reliability over centralized routing architectures.
In addition to message routing, STPs have been used to perform other stateless message processing functions, such as global title translation (GTT). Global title translation is the process by which a called party address in the SCCP portion of a signaling message is translated into a destination point code and subsystem number. Like signaling message routing, global title translation has also been distributed among multiple processors in signaling message routing nodes, such as signal transfer points.
FIG. 1 is a block diagram of an STP 100 with distributed routing and GTT processing. In FIG. 1, STP 100 includes an inter-processor message transport bus 102, a pair of maintenance and administration subsystem processors 104, a first SS7 link interface module (LIM) 106, a second LIM 108, a first SCCP module 110, and a second SCCP module 112. Maintenance and administration subsystem processors 104 perform maintenance operations, such as alarm monitoring and database provisioning. Link interface modules 106 and 108 perform signaling message routing functions. SCCP modules 110 and 112 perform SCCP functions, such as global title translation.
In one implementation, SCCP modules 110 and 112 may be identically provisioned so as to be operated in a load-sharing manner. That is, an inbound or receiving LIM may internally distribute received SCCP messages to an SCCP module using a load sharing algorithm. The load sharing algorithm may distribute messages among available SCCP cards in any suitable manner, such as a round-robin manner.
Load-sharing among multiple redundant processors is advantageous when processing messages that are not associated with stateful or sequenced transactions. For example, GTT processing of class 0 SCCP messages requires only that the global title address in a received SCCP message be translated and that the message be routed to a final destination based on the translated address. Once the SCCP module performs an address translation and directs the SCCP message to an outbound LIM, that particular address translation is of no significance to translation operations performed on SCCP messages subsequently received by the STP. Hence, GTT processing of class 0 SCCP messages is not considered to be stateful in nature, and a load-sharing algorithm may be employed to handle internal SCCP message distribution within a multi-processor STP.
In some instances, it may be desirable to perform stateful transactions at an STP. For example, it may be desirable to implement stateful transactions on redundant processing modules, such as SCCP modules 120 and 122 illustrated in FIG. 1. Such stateful transactions may include related messages that are received or transmitted by the signal transfer point at different times. One problem with implementing stateful transactions in a distributed processing environment is that load sharing algorithms will not always guarantee that subsequent signaling messages in a stateful transaction are processed by the same processing module as the signaling messages that initiated the stateful transaction. Load sharing algorithms simply distribute messages based on processor availability, without regard to which processor may have initiated a stateful transaction.
One potential solution to such a problem is to process all SCCP messages, including messages associated with stateful and stateless transactions, at the same processing module. While such a solution would ensure the proper distribution of messages for stateful transactions, the reliability of such a system is decreased over systems with distributed SCCP processing.
Accordingly, there exists a long felt need for improved methods and systems for processing messages associated with stateful transactions in a distributed processing environment.